<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://formsanywhere.eds.com" elementFormDefault="qualified" targetNamespace="http://formsanywhere.eds.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ProcessForm">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="ProcessFormIn" type="tns:ProcessFormRequest" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ProcessFormRequest">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Credentials" type="tns:Credentials" />
      <xs:element minOccurs="0" maxOccurs="1" name="TheForm" type="tns:Form" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Credentials">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Company" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="UserID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Password" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Form">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Version" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CreatedBy" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="CreatedDate" type="xs:dateTime" />
      <xs:element minOccurs="0" maxOccurs="1" name="GivenBy" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="DateGiven" type="xs:dateTime" />
      <xs:element minOccurs="1" maxOccurs="1" name="ReadOnly" type="xs:boolean" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FormResources" type="tns:FormResource" />
      <xs:element minOccurs="0" maxOccurs="1" name="FormAction" type="tns:FormAction" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FormResource">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Title" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Prompt" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Completed" type="xs:boolean" />
      <xs:element minOccurs="1" maxOccurs="1" name="Required" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GraphicDisplay">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="ImageBytes" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="FullScreen" type="xs:boolean" />
          <xs:element minOccurs="1" maxOccurs="1" name="DisplayMode" type="tns:DisplayMode" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="DisplayMode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Normal" />
      <xs:enumeration value="CenterImage" />
      <xs:enumeration value="StretchImage" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="GraphicAnnotation">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:GraphicDisplay">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="AnnotationBytes" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DateEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Date" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DateTimeEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:DateEntry">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Time" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DateTimeEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:DateTimeEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DateEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:DateEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DataField">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="FieldValue" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Conditional">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="JumpToFormResource" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AddressEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Address1" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Address2" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="City" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="State" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="CountryCode" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="PostalCode" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AddressEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:AddressEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PasswordEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Password" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="UserLoginEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="UserName" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Password" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TextPrompt">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TextEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="TextValue" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SignatureCaptureEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="SignatureBytes" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PostalCodeEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="PostalCode" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PostalCodeEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:PostalCodeEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PhoneEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="CountryCode" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="NationalCode" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="AreaCode" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Number" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Extension" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Pin" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PhoneEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:PhoneEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SelectEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Options" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Selections" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="MultiSelectEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:SelectEntry" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="MultiSelectOtherEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:MultiSelectEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="OtherSelected" type="xs:boolean" />
          <xs:element minOccurs="0" maxOccurs="1" name="OtherValue" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SingleSelectEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:SelectEntry" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SingleSelectOtherEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:SingleSelectEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="OtherSelected" type="xs:boolean" />
          <xs:element minOccurs="0" maxOccurs="1" name="OtherValue" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="YesNoEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="Response" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NoteEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="NoteText" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NameEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="NameTitle" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Given" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Middle" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Family" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="Suffix" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NumberEntry">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FormResource">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="NumberValue" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NumberEntryNA">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:NumberEntry">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="NotApplicable" type="xs:boolean" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="FormAction">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="ActionType" type="tns:ActionType" />
      <xs:element minOccurs="0" maxOccurs="1" name="Endpoint" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ActionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SaveToDisk" />
      <xs:enumeration value="SendToWebService" />
      <xs:enumeration value="LoadNewForm" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ProcessFormResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="ProcessFormResult" type="tns:Form" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DownloadFormList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="DownloadFormListIn" type="tns:DownloadFormListRequest" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="DownloadFormListRequest">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Credentials" type="tns:Credentials" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DownloadFormListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="DownloadFormListResult" type="tns:FormsList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="FormsList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Form" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DownloadForm">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="DownloadFormIn" type="tns:DownloadFormRequest" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="DownloadFormRequest">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Credentials" type="tns:Credentials" />
      <xs:element minOccurs="0" maxOccurs="1" name="FormName" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DownloadFormResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="DownloadFormResult" type="tns:Form" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>